package cn.js.sip.rat.system.thymeleaf;

import cn.js.sip.rat.system.util.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;

/**
 * @ClassName: cn.js.sip.rat.system.thymeleaf
 * @Description: TODO
 * @author: xuxiaoli
 * @Date: 2019-12-31   10:31
 */
@Service("permission")
public class PermissionService {
    public static final String NOACCESS = "hidden";

    /**
     * 验证用户是否具备某权限，无权限返回hidden用于前端隐藏（如需返回Boolean使用isPermitted）
     *
     * @param permission 权限字符串
     * @return 用户是否具备某权限
     */
    public String hasPermi(String permission) {
        return isPermitted(permission) ? StringUtils.EMPTY : NOACCESS;
    }

    /**
     * 判断用户是否拥有某个权限
     *
     * @param permission 权限字符串
     * @return 用户是否具备某权限
     */
    public boolean isPermitted(String permission) {
        return SecurityUtils.getSubject().isPermitted(permission);
    }
}
